<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //0级
        let num = 10
        //1级
        function fn1(){
            let num = 20;
            console.log(num);
            //2级
            function fn2(){
                let num = 30;
                console.log(num);
            }
            fn2()
        }
        fn1()

        console.log(num);
        //	【作用域链】	
        //默认情况下,代码处于全局作用域(0级链),当声明一个函数之后就会开辟一个局部作用域(1级)。
        //而函数里面又可以声明一个函数,又会形成新的作用域(2级),以此类推形成的结构称之为作用域链
        //【变量访问规则:就近原则】
        //当你在一个作用域访问变量的之后,首先会看当前作用域有没有声明。如果有则访问。没有则往上级作用域查找,有没有声明。
        // 有则访问,没有则继续往上。
        // 直到作用域最顶端0级,如果还没有找到,则程序报错。
        </script>
</body>
</html>